﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace AbstractFactory.Classic
{
    public class ConcreateFactory01:IAbstractFactory
    {

        public IProductA CreateProductA()
        {
            return new ProductA01();
        }

        public IProductB CreateProductB()
        {
            return new ProductB01();
        }

        public IProductC CreateProductC()
        {
            return new ProductC01();
        }
    }
    public class ConcreateFactory02: IAbstractFactory
    {

        public IProductA CreateProductA()
        {
            return new ProductA02();
        }

        public IProductB CreateProductB()
        {
            return new ProductB02();
        }

        public IProductC CreateProductC()
        {
            return new ProductC02();
        }
    }
    public class ConcreateFactory03 : IAbstractFactory
    {

        public IProductA CreateProductA()
        {
            return new ProductA03();
        }

        public IProductB CreateProductB()
        {
            return new ProductB03();
        }

        public IProductC CreateProductC()
        {
            return new ProductC03();
        }
    }
}
